package com.bbcare.followup.plat.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.bbcare.followup.plat.entity.FollowQueue;
import com.bbcare.followup.plat.entity.FollowQueueAuthority;
import com.bbcare.followup.plat.entity.PatientQueueScheme;

/*
 * @name:         队列信息服务类接口
 * @author:       DemonLee
 * @createTime:   2017.4.12
 * @description:  队列基本信息等
 * @modify:
 * 
 */
public interface IFollowQueueService {
    // 队列信息List查询接口
    public HashMap<String, Object> getQueueList(Map<String, Object> paramMap) throws Exception;

    // 队列添加修改
    public String queueModify(Map<String,Object> queueMap) throws Exception;
    
    //分页查询 中 获取队列总数
    public int getQueueCount(Map<String, Object> paramMap) throws Exception;
    
    //根据登陆用户权限（暂时根据队列私有、公有类型、用户ID/租户ID） 获取能查看的队列信息
    List<String> getQueueArrByAuthority(Map<String, Object> paramMap)throws Exception;
    
    FollowQueue getQueueDetailByQueueId(Map<String, Object> paramMap) throws Exception ;
    
    //根据队列id删除队列
    int QueueDeleteById(Map<String, Object> paramMap) throws Exception;
    
    //根据队列id删除 队列角色信息
    int QueueAuthoritryDeleteByIds(List<String> list) throws Exception ;
    
    //修改队列角色信息
    int queueAuthorityModify(List<FollowQueueAuthority> list) throws Exception ;
    
    //查询队列里是否有患者信息
    List<PatientQueueScheme> getPatientListByQueueId(Map<String, Object> paramMap) throws Exception ;
    
    //队列管理者权限转让
    void queueAdminTransfer(Map<String, Object> paramMap)throws Exception ;
    
    //查询科室下的医生 和 所属的权限
    List<Map<String,Object>> queueDoctorsQuery(Map<String, Object> paramMap) throws Exception;
    
    //查询队列管理医生
    List<Map<String,Object>> queuemanagerDoctors(Map<String, Object> paramMap) throws Exception;

    //查询队列主页 患者活跃统计数据
    Map<String, Object> qryQueueHomeStatistics(Map<String, Object> paramMap) throws Exception;
    
    //查询队列主页发展趋势数据 按日 /月查询
    List<Map<String, Object>> qryTrenddataStatistics(Map<String, Object> paramMap) throws Exception;
    
    //查询孕周数据统计  按不同的孕周段统计
    Map<String, Object> getPregnancyStatistics(Map<String, Object> paramMap) throws Exception;
    
    //查询患者 来源渠道统计数据
    Map<String, Object> getPatientResourceStatistics(Map<String, Object> paramMap) throws Exception;

    // 患者添加某个队列的建档问卷查询接口
    Map<String, Object> qryQueueSchemePatientAddContent(Map<String, Object> paramMap) throws Exception;
    
    List<FollowQueue> getDefaultQueueByDeptId(Map<String, Object> paramMap) throws Exception ;
}
